import java.util.Scanner;

public class Test_7_17_2 {
    //跳台阶
    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        //方法3：数组滚动
        int a = 1;
        int b = 1;
        int c = 2;
        for (int i = 2; i <= n; i++) {
            c = a + b;
            a = b;
            b = c;
        }
        if (n == 0 || n == 1) {
            System.out.println(n);
        }else {
            System.out.println(c);
        }
        //方法1
//        if (n == 0){
//            System.out.println(0);
//        }else if (n == 1){
//            System.out.println(1);
//        }else {
//
//            int[] dp = new int[n+1];
//            dp[0] = dp[1] = 1;
//            dp[2] = 2;
//            for (int i = 2; i < n + 1; i++) {
//                dp[i] = dp[i - 1] + dp[i - 2];
//            }
//            System.out.println(dp[n]);
        //方法2
//            System.out.println(stepNumber(n));

//        }
    }
    //方法2
//    //当n>=2的情况
//    public static int stepNumber(int n){
//        if (n == 0){
//            return 1;
//        }
//        if (n == 1){
//            return 1;
//        }
//        if (n == 2){
//            return 2;
//        }
//        return stepNumber(n-1)+ stepNumber(n-2);
//    }
}
